package cn.edu.example.web.controller;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import cn.edu.example.po.User;
import cn.edu.example.service.UserService;
/**
 * 用户控制器类
 */
@Controller
public class UserController {
	// 依赖注入
	@Autowired
	private UserService userService;

	
	/**
	 * 用户登录
	 */
	@RequestMapping(value = "/login.action", method = RequestMethod.POST)
	public String login(String username,String password, Model model,HttpServletRequest request, 
                                                          HttpSession session) {
		// 通过账号和密码查询用户
		User user = userService.findUser(username, password);
		//获取身份值
		String position = request.getParameter("position");
		if(user != null){	
			// 将用户对象添加到Session
			session.setAttribute("USER_SESSION", user);
			if(position.equals(String.valueOf(user.getUser_rank())) && position.equals("1")) {
				// 跳转到主页面
				return "home_page";
			}else if(position.equals(String.valueOf(user.getUser_rank())) && position.equals("0")) {
				// 跳转到主页面
				return "student_page";
			}else if(!position.equals(String.valueOf(user.getUser_rank()))) {
				model.addAttribute("msg", "身份有误！");
			}
		}else {
			model.addAttribute("msg", "账号或密码错误，请重新输入！");
		}
		
         // 返回到登录页面
		return "login";
	}
	

	/**
	 * 退出登录
	 */
	@RequestMapping(value = "/logout.action")
	public String logout(HttpSession session) {
	    // 清除Session
	    session.invalidate();
	    // 重定向到登录页面的跳转方法
	    return "redirect:login.action";
	}
	/**
	 * 向用户登陆页面跳转
	 */
	@RequestMapping(value = "/login.action", method = RequestMethod.GET)
	public String toLogin() {
	    return "login";
	}
	
	@RequestMapping(value = "/createUser.action", method = RequestMethod.POST)
	@ResponseBody
	public String createUser(User user) {
	   int rows = this.userService.createUser(user);
	   System.out.print(rows);
	   if(rows > 0) {
		   return "OK";
	   }else {
		   return "FAIL";
	   }
	}

}
